﻿using System.Collections.Generic;
using DALHelper.DAL;
using System;

namespace DALHelper.Business
{
    public class RoomCategory
    {
        private DALManager m_DataManager;

        #region properties

        public string RoomCatID
        {
            get;
            set;
        }

        public string RoomForm
        {
            get;
            set;
        }

        public string RoomLevel
        {
            get;
            set;
        }

        public int NumOfBeds
        {
            get;
            set;
        }

        public decimal RoomPrice
        {
            get;
            set;
        }

        /// <summary>
        /// DUMMY property: So phong con trong thuoc loai nay.
        /// Dung khi tra cuu.
        /// </summary>
        public int AvailCount
        {
            get;
            set;
        }

        /// <summary>
        /// DUMMY property: so phong thuoc loai nay can dat.
        /// Dung khi tra cuu.
        /// </summary>
        public int BookedGuestCount
        {
            get { return m_iBookedGuestCount; }
            set
            {
                if(value < 0 || value > MaxCapacity)
                {
                    throw new ArgumentException("Số khách phải >= 0 và nhỏ hơn hay bằng số khách tối đa.");
                }
                m_iBookedGuestCount = value;
            }
        }
        private int m_iBookedGuestCount;

        /// <summary>
        /// DUMMY property: số khách tối đa mà loại phòng này có thể chứa.
        /// </summary>
        public int MaxCapacity
        {
            get
            {
                return AvailCount * (string.Compare(RoomForm, "Giường đôi", true) == 0 ? 2 : 1) * NumOfBeds;
            }
        }

        #endregion

        public RoomCategory()
        {
        }

        public RoomCategory(DALManager dtManager)
        {
            m_DataManager = dtManager;

        }

        public void AddRoomCat(RoomCategory roomCat)
        {

        }

        public bool RemoveRoomCat(int roomCatID)
        {
            return false;
        }

        public RoomCategory QueryRoomCat(int roomCatID)
        {
            return null;
        }

        public IEnumerable<RoomCategory> QueryAllRoomCats()
        {
            return null;
        }

    }
}
